QRegExp 正则表达式详解

您所在的位置:网站首页 正则表达式匹配重复字符串 博客园 QRegExp 正则表达式详解

QRegExp 正则表达式详解

2024-07-11 07:25| 来源: 网络整理| 查看: 265

4.7 或 "|" 的左右两边,对某个字符最好只有一边可以匹配,这样,不会因为 "|" 两边的表达式因为交换位置而有所不同。

匹配非负整数(正整数 + 0)           ^\d+$匹配正整数                                       ^[0-9]*[1-9][0-9]*$匹配非正整数(负整数 + 0)           ^((-\d+)|(0+))$匹配负整数                                       ^-[0-9]*[1-9][0-9]*$匹配整数                                          ^-?\d+$匹配非负浮点数(正浮点数 + 0)    ^\d+(\.\d+)?$匹配正浮点数                                   ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$匹配非正浮点数(负浮点数 + 0)    ^((-\d+(\.\d+)?)|(0+(\.0+)?))$匹配负浮点数                                   ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$匹配浮点数                                       ^(-?\d+)(\.\d+)?$匹配由26个英文字母组成的字符串   ^[A-Za-z]+$匹配由26个英文字母的大写组成的字符串                       ^[A-Z]+$匹配由26个英文字母的小写组成的字符串                       ^[a-z]+$匹配由数字和26个英文字母组成的字符串                       ^[A-Za-z0-9]+$匹配由数字、26个英文字母或者下划线组成的字符串     ^\w+$匹配email地址                                   ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$匹配url                                               ^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$匹配html tag                                       ]*)?>(.*?)

 

"^\d+$"                         //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$"     //正整数 "^((-\d+)|(0+))$"            //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$"    //负整数 "^-?\d+$"                 //整数 "^\d+(\.\d+)?$"              //非负浮点数(正浮点数 + 0) "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"                                                                        //非正浮点数(负浮点数 + 0)"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"   //负浮点数"^(-?\d+)(\.\d+)?$"         //浮点数 "^[A-Za-z]+$"                //由26个英文字母组成的字符串 "^[A-Z]+$"                     //由26个英文字母的大写组成的字符串 "^[a-z]+$"                      //由26个英文字母的小写组成的字符串 "^[A-Za-z0-9]+$"           //由数字和26个英文字母组成的字符串 "^\w+$"                          //由数字、26个英文字母或者下划线组成的字符串 "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"                                   //email地址 "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"                   //url "^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$"     // 年-月-日"^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$"      // 月/日/年"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"      //Email"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"                                //电话号码"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"                                               //IP地址

^([0-9A-F]{2})(-[0-9A-F]{2}){5}$   //MAC地址的正则表达式^[-+]?\d+(\.\d+)?$                          //值类型正则表达式

 

==================================================================================

 

QRegExp是Qt的正则表达式类.

Qt中有两个不同类的正则表达式.第一类为元字符.它表示一个或多个常量表达式.令一类为 转义字符,它代表一个特殊字符.

 

 

一.元字符 .      匹配任意单个字符.                 例如, 1.3 可能是1. 后面跟任意字符,再跟3^     匹配字符串首.                        例如, ^12可能是123,但不能是312$     匹配字符串尾.                        例如, 12$可以是312, 当不能是 123[ ]    匹配括号内输入的任意字符.  例如[123]可以为1, 2 或3*      匹配任意数量的前导字符.      例如, 1*2可以为任意数量个1(甚至没有), 后面跟一个2+     匹配至少一个前导字符.          例如, 1+2必须为一个或多个1, 后跟一个2?     匹配一个前导字符或为空.      例如 1?2可以为2或12

 

 

 

二.统配模式        通过 QRegExp::setPatternSyntax(QRegExp::Wildcard);可以将元字符设置为统配模式.在统配模式下,只有3个元字符可以使用.他们的功能没有变化.?     匹配任意单个字符,                 例如, 1?2可以为1,后面跟任意单个字符, 再跟2*      匹配任意一个字符序列.          例如, 1*2, 可以为1, 后面跟任意数量的字符, 再跟一个2[ ]    匹配一个定义的字符集合.       例如, [a-zA-Z\.]可以匹配 a到z之间任意一个字符和. [^a]匹配出小写a以外的字符.

 

 

 

三.转义序列 \.      匹配 "."\^     匹配 "^"\$     匹配 "$"

 

\[      匹配"["

\]      匹配" ]"

\*      匹配 "*"\+     匹配 "+"\?     匹配 "?"\b     匹配 响铃字符,使计算机发出嘟的一声.\t      匹配 制表符号\n     匹配 换行符号\r      匹配 回车符

 

\s     匹配 任意空格\xnn 匹配 16进制为nn的字符\0nn 匹配 8进制的nn字符

       这些表达式均以 \ 开始, 与C++的转义字符相同,所以为了定义QRegExp中的一个转义序列,需要在前面添加\\

 

///下面是示例

[cpp] view plaincopy         QRegExp rx("([\\dA-F]{2}-){6}");      QString str = tr("blue (00-14-38-15-58-F4-) sa 的dfasd");       int pos =  rx.indexIn(str);          if(pos > -1){           QString s = rx.cap(0);           s.chop(1);           qDebug() 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3